from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait   # 显示等待的包
from selenium.webdriver.support import expected_conditions as EC   # 预期判断条件的包

# 打开浏览器
driver = webdriver.Firefox()
# 双击打开百度页面
driver.get('https://www.baidu.com/')
# 隐式等待：全局性 每次查找元素时都会使用这个等待时间  适用于整个 WebDriver 的生命周期，不需要针对每个元素进行单独配置  查询一次
driver.implicitly_wait(5)
# 窗口最大化
driver.maximize_window()
time.sleep(2)
# 显示等待   局部   显示等待是对某个具体的元素进行等待指定时间，直到某个条件被满足
seatch = WebDriverWait(driver, 20, 0.5).until(
    EC.presence_of_element_located((By.ID, 'kw'))
)
# presence_of_element_located：存在性检查
# visibility_of_element_located：可见性检查
# text_to_be_present_in_element：文本匹配
# frame_to_be_available_and_switch_to_it：框架切换

# seatch = driver.find_element(By.ID, 'kw')
# 键盘输入事件
seatch.send_keys('selenium键盘鼠标浏览器事件')
# 强制等待
time.sleep(2)
# 键盘回车事件
seatch.send_keys(Keys.ENTER)
time.sleep(2)

